﻿package com.rongji.dfish.ui.annotation.validation;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

/**
 * 大小校验
 * <p>包含属性message groups strict min max</p>
 * @author DFish Team
 * @since 2.4
 */
@Target(value={METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER})
@Retention(value=RUNTIME)
@Documented
public @interface Size {
	/**
	 * 校验失败后的消息，如果为空则使用默认提示
	 * @return String
	 */
	public String message() default "";

	/**
	 * 设置这个校验对那个校验策略生效，默认仅在default策略中
	 * @return String
	 */
	public String[] groups() default { "default" };

	/**
	 * 严格校验，不仅在页面FormPanel中产生JS校验，在服务器接收到请求后也会进行校验，校验不通过则抛出异常
	 * @return boolean
	 */
	public boolean strict() default false;

	/**
	 * 最小值
	 * @return int
	 */
	public int min() default Integer.MIN_VALUE;

	/**
	 * 最大值
	 * @return int
	 */
	public int max() default Integer.MAX_VALUE;
}
